package com.keur.money.utils.helper

import com.keur.money.base.utils.SPUtils
import com.keur.money.config.KeurConfigs

/**
 * MullaFlow
 * @Author wwdeng
 * @CreateTime: 2024/7/24 13:47
 * @Annotation：SharedPreferences 数据存取帮助类
 */
object SharedHelper {

    /**
     * SharedPreferences 保存 KEY
     */
    object KEUR_SPKEY{

        /**
         * App 转发时区id Key
         */
        const val KEUR_TIMEZONE_ID = "${KeurConfigs.KEUR_APPNAME}_TimeZone_Id"
        /**
         * App 转发时区 Key
         */
        const val KEUR_TIMEZONE = "${KeurConfigs.KEUR_APPNAME}_TimeZone"
        /**
         * App 转发时区 区号  Key
         */
        const val KEUR_TIMEZONE_CODE = "${KeurConfigs.KEUR_APPNAME}_TimeZone_Code"
        /**
         * App 转发时区 国家标识  Key
         */
        const val KEUR_TIMEZONE_COUNTRY = "${KeurConfigs.KEUR_APPNAME}_TimeZone_Country"

        /**
         * 业务APP 配置请求
         */
        const val KEUR_COMMON = "${KeurConfigs.KEUR_APPNAME}_Common"

        /**
         * 用户登录状态
         */
        const val KEUR_LOGIN = "${KeurConfigs.KEUR_APPNAME}_isLogin"

        /**
         * 用户id（userId）
         * 登录接口获取 VH7vqSZFdCIj0qGuSRAZw
         */
        const val KEUR_USERID = "${KeurConfigs.KEUR_APPNAME}_UserId"

        /**
         * 用户Token
         * 登录接口获取 VH7vqSZFdCIj0qGuSRAZw
         */
        const val KEUR_TOKEN = "${KeurConfigs.KEUR_APPNAME}_Token"

        /**
         * 用户号码
         * 登录页面获取
         */
        const val KEUR_MOBILE = "${KeurConfigs.KEUR_APPNAME}_Mobile"

        /**
         * 是否是渠道用户
         * 登录接口获取
         */
        const val KEUR_IS_ADSOURCE = "${KeurConfigs.KEUR_APPNAME}_isAdSource"

        /**
         * 是否是审核账号
         * 登录时保存
         */
        const val KEUR_IS_CONFIG_ACCOUNT = "${KeurConfigs.KEUR_APPNAME}_isConfigAccount"

        /**
         * 用户流程状态
         */
        const val KEUR_PROCESS = "${KeurConfigs.KEUR_APPNAME}_Process"

        /**
         * 用户签到信息
         */
        const val KEUR_SIGN_INFO = "${KeurConfigs.KEUR_APPNAME}_Sign_Info"

        /**
         * 用户VIP等级
         * 1    个产品 VIP1
         * 2-4  个产品 VIP2
         * > 4  个产品 VIP3
         */
        const val KEUR_VIP = "${KeurConfigs.KEUR_APPNAME}_Vip"

        /**
         * 自定义数据
         */
        const val KEUR_CUSTOM_DATA = "${KeurConfigs.KEUR_APPNAME}_Custom_Data"

        /**
         * 用户优惠券信息
         */
        const val KEUR_USER_COUPON_INFO = "${KeurConfigs.KEUR_APPNAME}_Coupon_Info"

        /**
         * 产品列表
         */
        const val KEUR_PRODCTS = "${KeurConfigs.KEUR_APPNAME}_Product_Info"

        /**
         * Active Dialog Show Num
         */
        const val KEUR_DIALOG_ACTIVE_NUM = "${KeurConfigs.KEUR_APPNAME}_Dialog_Active_Num"

        /**
         * Normal Dialog Show Num
         */
        const val KEUR_DIALOG_NORMAL_NUM = "${KeurConfigs.KEUR_APPNAME}_Dialog_Normal_Num"

        /**
         * 是否选择语言
         */
        const val KEUR_LANGUAGE_LAUNCH = "${KeurConfigs.KEUR_APPNAME}_Launch_Language_Show"

        /**
         * Notice Dialog Show Num
         */
        const val KEUR_DIALOG_NOTICE_NUM = "${KeurConfigs.KEUR_APPNAME}_Dialog_Notice_Num"

        /**
         * 权限列表是否同意：0未操作  1已同意  -1拒绝
         */
        const val KEUR_PERMISSION_LIST_STATUS = "${KeurConfigs.KEUR_APPNAME}_Permission_List_Status"

        /**
         * 上一次非强制更新提示时间戳
         */
        const val KEUR_APP_UPDATE_LAST_TIME = "${KeurConfigs.KEUR_APPNAME}AppUpdateLastTime"
    }

    /**
     * 保存数据
     */
    fun saveKeurSPData(key: String, value: Any){
        SPUtils.put(key,value)
    }

    /**
     * 获取String
     */
    fun getKeurSPString(key: String): String{
        return SPUtils.getString(key)
    }

    /**
     * 获取boolean
     */
    fun getKeurSPBoolean(key: String): Boolean{
        return SPUtils.getBoolean(key,false)
    }

    /**
     * 获取Int
     */
    fun getKeurSPInt(key: String): Int{
        return SPUtils.getInt(key,0)
    }

    /**
     * 移除指定内容
     */
    fun removeKeurData(key: String){
        SPUtils.remove(key)
    }

    /**
     * 退出登录，移除用户信息
     */
    fun onKeurLoginOut(){
        //移除已登录状态
        removeKeurData(KEUR_SPKEY.KEUR_LOGIN)
        //移除用户Token
        removeKeurData(KEUR_SPKEY.KEUR_TOKEN)
        //移除用户id
        removeKeurData(KEUR_SPKEY.KEUR_USERID)
        removeKeurData(KEUR_SPKEY.KEUR_MOBILE)
        removeKeurData(KEUR_SPKEY.KEUR_IS_ADSOURCE)
        removeKeurData(KEUR_SPKEY.KEUR_IS_CONFIG_ACCOUNT)
        removeKeurData(KEUR_SPKEY.KEUR_PROCESS)
        removeKeurData(KEUR_SPKEY.KEUR_SIGN_INFO)
        removeKeurData(KEUR_SPKEY.KEUR_VIP)
        removeKeurData(KEUR_SPKEY.KEUR_CUSTOM_DATA)
        removeKeurData(KEUR_SPKEY.KEUR_USER_COUPON_INFO)
        removeKeurData(KEUR_SPKEY.KEUR_PRODCTS)
        removeKeurData(KEUR_SPKEY.KEUR_PERMISSION_LIST_STATUS)
    }
}